//
//  FCSDKUser.h
//  FCSDK
//
//  Created by ZhouYou on 2022/3/29.
//

#import <Foundation/Foundation.h>
#import "FCSDKSingleton.h"

NS_ASSUME_NONNULL_BEGIN

@interface FCSDKOtherInfoDetail : NSObject<NSCoding, NSCopying>

@property (nonatomic, assign) NSInteger member_id;
@property (nonatomic, copy) NSString *address;
@property (nonatomic, copy) NSString *head_url;
@property (nonatomic, copy) NSString *nick_name;
@property (nonatomic, copy) NSString *ip;
@property (nonatomic, copy) NSString *uid;
@property (nonatomic, assign) NSInteger type;

@end

@interface FCSDKOtherInfo : NSObject<NSCoding, NSCopying>

@property (nonatomic, strong) FCSDKOtherInfoDetail *wx;
@property (nonatomic, strong) FCSDKOtherInfoDetail *qq;
@property (nonatomic, strong) FCSDKOtherInfoDetail *wb;
@property (nonatomic, strong) FCSDKOtherInfoDetail *apple;

@end

@interface FCSDKPointConfig : NSObject<NSCoding, NSCopying>

@property (nonatomic, assign) NSInteger apple;
@property (nonatomic, assign) NSInteger birthday;
@property (nonatomic, assign) NSInteger first_login;
@property (nonatomic, assign) NSInteger first_login_switch;
@property (nonatomic, assign) NSInteger mobile;
@property (nonatomic, assign) NSInteger perfect_information_switch;
@property (nonatomic, assign) NSInteger qq;
@property (nonatomic, assign) NSInteger sex;
@property (nonatomic, assign) NSInteger sign;
@property (nonatomic, assign) NSInteger sign_cycle_first;
@property (nonatomic, assign) NSInteger sign_cycle_two;
@property (nonatomic, assign) NSInteger sign_extra_first;
@property (nonatomic, assign) NSInteger sign_extra_two;
@property (nonatomic, assign) NSInteger sign_switch;
@property (nonatomic, assign) NSInteger wb;
@property (nonatomic, assign) NSInteger wx;

@end

@interface FCSDKUser : NSObject<NSCoding, NSCopying>
 
@property (nonatomic, strong) NSDictionary *userInfo;
@property (nonatomic, assign) int site_id;
@property (nonatomic, assign) int user_id;
@property (nonatomic, copy) NSString *head_pic;//头像
@property (nonatomic, copy) NSString *idcard_number;//身份证
@property (nonatomic, copy) NSString *member_code;
@property (nonatomic, assign) int member_id;
@property (nonatomic, copy) NSString *member_name;//名字
@property (nonatomic, copy) NSString *member_sn;
@property (nonatomic, copy) NSString *member_nickname;//昵称
@property (nonatomic, copy) NSString *member_real_name;
@property (nonatomic, copy) NSString *mobile;//手机号
@property (nonatomic, copy) NSString *mobile_edit_time;
@property (nonatomic, copy) NSString *email;//邮件
@property (nonatomic, copy) NSString *access_key;
@property (nonatomic, copy) NSString *site_access_key;
 
@property (nonatomic, copy) NSString *access_key_create_time;

@property (nonatomic, copy) NSString *birthday;//2016-01-15
@property (nonatomic, copy) NSString *birthday_edit_time;
@property (nonatomic, assign) NSInteger point;//积分

@property (nonatomic , strong) FCSDKOtherInfo *other_info;
@property (nonatomic, copy) NSString *qq;
@property (nonatomic, copy) NSString *qqopenid;
@property (nonatomic, copy) NSString *qq_edit_time;

@property (nonatomic, copy) NSString *wx;
@property (nonatomic, copy) NSString *wxopenid;
@property (nonatomic, copy) NSString *wx_edit_time;

@property (nonatomic, copy) NSString *wb;
@property (nonatomic, copy) NSString *wbopenid;
@property (nonatomic, copy) NSString *wb_edit_time;

@property (nonatomic, copy) NSString *zfb;

@property (nonatomic, copy) NSString *apple;
@property (nonatomic, copy) NSString *apple_edit_time;

@property (nonatomic, assign) int sex;//1=男，2=女
@property (nonatomic, copy) NSString *sex_edit_time;
@property (nonatomic, copy) NSString *province;//省份
@property (nonatomic, copy) NSString *city;//城市
@property (nonatomic, copy) NSString *district;//片区
@property (nonatomic, copy) NSString *desc;//个性签名

@property (nonatomic, assign) int status;
@property (nonatomic, assign) int user_flag;
@property (nonatomic, copy) NSString *channel_sources;

@property (nonatomic, assign) NSInteger close;
@property (nonatomic, copy) NSString *close_end_time;
@property (nonatomic, copy) NSString *close_start_time;
@property (nonatomic, copy) NSString *create_time;
@property (nonatomic, copy) NSString *create_token_time;

@property (nonatomic, assign) NSInteger deleted;
@property (nonatomic, copy) NSString *device_no;
@property (nonatomic, copy) NSString *imei_no;
@property (nonatomic, copy) NSString *mac_no;
@property (nonatomic, copy) NSString *ip;
@property (nonatomic, copy) NSString *site_code;

@property (nonatomic, assign) NSInteger is_certification;
@property (nonatomic, assign) NSInteger is_first_login;
@property (nonatomic, assign) NSInteger list_auto_play;
@property (nonatomic, assign) NSInteger receive_notice;//1=接收通知，0=不接收通知
@property (nonatomic, assign) NSInteger wifi_show_image;//

@property (nonatomic, copy) NSString *login_type;
@property (nonatomic, copy) NSString *pic_idcard_f;
@property (nonatomic, copy) NSString *pic_idcard_z;
@property (nonatomic, copy) NSString *sign_num;
@property (nonatomic, copy) NSString *sign_time;
@property (nonatomic , strong) FCSDKPointConfig *point_config;

+ (instancetype)instance;

/**
 获取本地存储的token，可为空
 */
+ (NSString *)token;

//销毁数据
+ (void)terminateInstance;
//持久化数据
+ (void)persist;
/// 恢复主租户缓存数据
+ (void)main_persist;

//保存用户信息,不可屏蔽
- (void)setUserInfo:(NSDictionary *)userInfo;
//设置极光推送别名
- (void)setUserJpushAlias:(NSString *)alias;
//删除极光推送别名
- (void)deleteUserJpushAlias;

@end

NS_ASSUME_NONNULL_END
